Flash memory is a type of rewritable memory chip that can maintain information without a power supply. In general, flash memory is comprised of transistors and each transistor uses an isolated floating gate to hold a charge. To program a memory cell, a lateral electric field “heats” the electrons and a transversal electric field injects carriers into the floating gate, a process called hot-electron injection. In other words, to program a memory cell, a large voltage charge is injected into the floating gate. On the other hand, erasing the memory cell removes that large voltage charge. A memory block includes multiple memory cells and to program a single memory cell, all the memory cells of the memory block are driven in the same conductive or non-conductive state (i.e., all the memory cells are erased) and thereafter, the data is programmed into the single memory cell and the rest of the memory cells in the memory block are reprogrammed. Accordingly, the erasure of a memory cell turns its bit value to “zero” and that programming the memory cell turns its bit value from “zero” to “one.” However, the programming logic cannot turn a “one” bit value back to a “zero” bit value. As a result, flash memory does not allow changes to bit values at random and, to perform a write operation, the flash memory requires an erase operation before the write operation.
It should be appreciated that the erase operation requires a high voltage, requires time to complete, and, depending on the environmental conditions, the erase operation is not precise. Further, flash memory is designed with large erase blocks, causing all memory cells within the blocks to be erased at one time. To manage the erase operations and the erase block structure, the system must use a flash file system. An exemplary file management operation associated with erase operations includes copying the contents of the erased blocks to an unused portion of the flash memory before the erase operation. Another exemplary file management operation includes rewriting a header section. It should be appreciated that a header section also is erased along with a data section during an erase operation. To maintain the header section, the header section must be copied and rewritten after the erase operation. Such file management operations slow the speed of write operations and require extra memory and processing power.
There are continuing efforts to improve non-volatile memory.